<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //作用域:是指程序代码中定义变量的区域
    // javaScript采用的是词法作用域(lexical scoping),也就是静态作用域.
    // 静态作用域与动态作用域
    // 因为javaScript采用的是词法作用域 ,函数的作用域在函数定义的时候就决定了.
    // 而与词法作用域相对的是动态作用域,函数的作用域实在函数调用的时候才决定的.
    // 例子
    // var value = 1
    // function foo() {
    //     console.log(value)
    // }
    // function bar() {
    //     var value = 2
    //     foo()
    // }
    // bar()
    // 《JavaScript权威指南》中的例子
    // var scope = 'global scope'
    // function checkScope () {
    //     var scope = 'local scope'
    //     function f() {
    //         return scope
    //     }
    //     return f()
    // }
    // console.log(checkScope()) //local scope
    var scope = 'global scope'
    function checkScope () {
        var scope = 'local scope'
        function f() {
            return scope
        }
        return f
    }
    console.log(checkScope()()) 
</script>
</html>